package com.caece.ajedrez;

import java.util.Date;
import java.util.LinkedList;
import java.util.List;

import com.caece.ajedrez.Fichas.Ficha.Color;
import com.caece.ajedrez.Movimientos.LogMovimiento;
import com.caece.ajedrez.Movimientos.Posicion;

public class Jugador {
	private Color color;
	private List<LogMovimiento> logMovimientos;
	private Long tiempo;
	private Long tiempoActual;
	
	public Jugador(Color color, Long tiempoMaximo){
		this.color = color;
		this.logMovimientos = new LinkedList<LogMovimiento>();
		this.tiempo = tiempoMaximo;
	}
	
	public List<LogMovimiento> getLogMovimientos(){
		return logMovimientos;
	}
	
	public Color getColor(){
		return color;
	}
	
	public void addMovimiento(Posicion desde, Posicion hasta){
		logMovimientos.add(new LogMovimiento(desde, hasta));
	}
	
	public void juega(){
		tiempoActual = new Date().getTime();
	}
	
	public void cambioTurno(){
		Long time = new Date().getTime();
		tiempo -= time - tiempoActual;
	}
	
	public Boolean isTimeUp(){
		return tiempo <= 0L;
	}
	
	public Long getTiempo(){
		return tiempo;
	}
}
